package com.day02;

/**
 * 一个类文件 *.java 里面 可以有很多个类,
 * 但只能有一个由 public 修饰的主类,
 * 主类的名称与类文件名一致
 */
// 所有未继承的类, 都隐式的继承了Object类.

/**
    文档注释  javadoc  将所有的类之上文档注释生成html文档。
 */
public class Person extends Object {
    // private 代表的是私有化, 只能在本类中访问
    private String name ;
    int age ;
    double weight ;
    double height ;
    int sex ;

    public Person (){
        name = "zs";
        age = 18 ;
        weight = 75.0 ;
        height = 180 ;
        sex = 1 ; // 1 代表 男
    }
}
// 其余的类不能由 public 修饰
// 本质是在生成二进制文件时, 会生成一个新的  class文件
// 继承是在子类类名后 添加 extends 关键字
// 再添加想要继承的类名
class Student extends Person {
    // 构造器
    // 如果不显示的声明出构造器, 在编译时, 系统会提供一个默认的无参的构造器。
    // 如果显示的声明出构造器, 在编译时, 系统就不再提供构造器。
    // 构造器, 一般情况下, 只对本类中的属性进行赋值。
    public Student (){
        // new Student() 时, 调用的就是 Student 类的构造器。
        System.out.println("Student init ... ");
    }
}
class Teacher extends Person {
//    super(); // super代表的是超级的意思,   new Person();
}
// super() == Person() { super () == Object(){} }
// new Teacher ()  -> new Person ()  ->  new Object () ;